package erfgame.core;

public interface Operation<K, E extends Throwable> {
	K perform() throws E;
	
	OperationProgress getProgress();
	
	void addOperationProgressListener( OperationProgressListener listener );
	
	void removeOperationProgressListener( OperationProgressListener listener );
}
